    <?php
    class Administracao{


    public $AppBody;
    public $AppHeader;
    public $AdmSideBar;
    public $AdmContent;
    public $AppFooter;

    public $NodeDao;


    public function init(){
        Config::$admRequest=true;

        include('../phpClasses/AppBody.php');
        include('../phpClasses/AppHeader.php');
        include('AdmSideBar.php');
        include('AdmContent.php');
        include('../phpClasses/AppFooter.php');
        include ('../DAO/NodeDao.php');
        include ('../DAO/EspecieDao.php');
        include ('../dinamic/SessionManager.php');
        //include('phpClasses/Config.php');

        $this->AppBody = new AppBody();
        $this->AppHeader = new AppHeader();
        $this->AdmSideBar = new AdmSideBar();
        $this->AdmContent = new AdmContent();
        $this->AppFooter = new AppFooter();

        $this->NodeDao = new NodeDao();
    }

    static function run(){
         include_once('../phpClasses/Config.php');
         if(isset($_GET['current'])){
         Config::$current = $_GET['current'];
         Config::$option = 0;
         }

         if(isset($_GET['option'])){
         Config::$option = $_GET['option'];
         }

          if(isset($_GET['idpai'])){
              Config::$idpai = $_GET['idpai'];
         }
         
         
         $Administracao = new Administracao();
         $Administracao->init();

         administracao::cadastrar();

         echo $Administracao->AppBody->showBodyHtml();
         echo $Administracao->AppHeader->showHtml();
         echo $Administracao->AppBody->showMainTopHtml();
         echo $Administracao->AdmSideBar->showHtml();
         echo $Administracao->AdmContent->showHtml();
         echo $Administracao->AppBody->showMainBottomHtml();
         echo $Administracao->AppFooter->showHtml();
         echo $Administracao->AppBody->showEndHtml();      
    }

    static function cadastrar(){

        require_once '../DAO/UserDao.php';
        require_once('../DAO/mySqlConnect.php'); // create the mySqlConnect class
        $mySqlConnect = new MySqlConnect();

            if(isset($_POST['cadastrar'])){
                    UserDao::initUsuario();
                    UserDao::$usuario->setNome($_POST['nome']);
                    UserDao::$usuario->setSenha($_POST['senha']);
                    UserDao::$usuario->setLogin($_POST['login']);
                    if(isset($_POST['create']))UserDao::$usuario->create = 1; else UserDao::$usuario->create = 0;
                    if(isset($_POST['read']))UserDao::$usuario->read = 1; else UserDao::$usuario->read = 0;
                    if(isset($_POST['update']))UserDao::$usuario->update = 1; else UserDao::$usuario->update = 0;
                    if(isset($_POST['delete']))UserDao::$usuario->delete = 1; else UserDao::$usuario->delete = 0;

                    UserDao::insert($mySqlConnect->getLinkDB());
            }

             if(isset($_POST['edit'])){
                    UserDao::initUsuario();
                    UserDao::$usuario->setId($_POST['id']);
                    UserDao::$usuario->setNome($_POST['nome']);
                    if(isset ($_POST['senha']))UserDao::$usuario->setSenha($_POST['senha']); else UserDao::$usuario->setSenha("");
                    UserDao::$usuario->setLogin($_POST['login']);
                    if(isset($_POST['create']))UserDao::$usuario->create = 1; else UserDao::$usuario->create = 0;
                    if(isset($_POST['read']))UserDao::$usuario->read = 1; else UserDao::$usuario->read = 0;
                    if(isset($_POST['update']))UserDao::$usuario->update = 1; else UserDao::$usuario->update = 0;
                    if(isset($_POST['delete']))UserDao::$usuario->delete = 1; else UserDao::$usuario->delete = 0;

                    if(SessionManager::getBySession('id')==$_POST['id']){
                        SessionManager::putInSession('nome', UserDao::$usuario->nome);
                        SessionManager::putInSession('login', UserDao::$usuario->login);
                        SessionManager::putInSession('create', UserDao::$usuario->create);
                        SessionManager::putInSession('read', UserDao::$usuario->read);
                        SessionManager::putInSession('update', UserDao::$usuario->update);
                        SessionManager::putInSession('delete', UserDao::$usuario->delete);
                    }
                    
                    UserDao::update($mySqlConnect->getLinkDB());
            }

             if(isset($_POST['enviar'])){
                    NodeDao::initNode();
                    NodeDao::$taxo->setTaxo($_POST['taxo']);
                    NodeDao::$taxo->setNome($_POST['name']);
                    NodeDao::$taxo->setDescricao($_POST['descricao']);
                
                    if(isset ($_POST['especie'])){
                        NodeDao::$taxo->setEspecie($_POST['especie']);
                    }

                    $data = getdate();
                    NodeDao::$taxo->setData(sprintf("%04d-%02d-%02d", $data['year'], $data['mon'], $data['mday']));
                    NodeDao::$node = Config::$idpai;
                    
                    NodeDao::insert($mySqlConnect->getLinkDB());
            }

             if(isset($_POST['editar'])){
                    NodeDao::initNode();
                    NodeDao::$taxo->setTaxo($_POST['taxo']);
                    NodeDao::$taxo->setNome($_POST['name']);
                    NodeDao::$taxo->setDescricao($_POST['descricao']);

                    $data = getdate();
                    NodeDao::$taxo->setData(sprintf("%04d-%02d-%02d", $data['year'], $data['mon'], $data['mday']));
                    NodeDao::$node = Config::$idpai;

                    NodeDao::update($mySqlConnect->getLinkDB());
            }

              if(isset ($_POST['especie'])){
                  EspecieDao::init();
                  EspecieDao::$especie->nome=$_POST['nome'];
                  EspecieDao::$especie->porte=$_POST['porte'];
                  EspecieDao::$especie->localidadade=$_POST['localidade'];
                  EspecieDao::$especie->descricao=$_POST['descricao'];

                  $directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
                  $uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . 'upload/';
                  $fieldname = 'img';

                 $uploadFilename = '';

                  if($_FILES[$fieldname]['name']!=""){
                      $now = time();
                      while(file_exists($uploadFilename = $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name']))
                      {
                              $now++;
                      }


                      @move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename);
                  }
                          
                  
                  EspecieDao::$especie->img= $uploadFilename;
                  EspecieDao::$especie->idtaxo=1;

                  EspecieDao::insert($mySqlConnect->getLinkDB());

               }

                if(isset ($_POST['especiePai'])){
                  EspecieDao::init();
                  EspecieDao::$especie->nome=$_POST['nome'];
                  EspecieDao::$especie->porte=$_POST['porte'];
                  EspecieDao::$especie->localidadade=$_POST['localidade'];
                  EspecieDao::$especie->descricao=$_POST['descricao'];
                  $directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
                  $uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . 'upload/';
                  $fieldname = 'img';

                  $uploadFilename = '';

                  if($_FILES[$fieldname]['name']!=""){
                      $now = time();
                      while(file_exists($uploadFilename = $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name']))
                      {
                              $now++;
                      }


                      @move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename);
                  }
                          
                  
                  EspecieDao::$especie->img= $uploadFilename;

                  EspecieDao::$especie->idtaxo=Config::$idpai;

                  EspecieDao::insert($mySqlConnect->getLinkDB());
               }

               if(isset ($_POST['especiedit'])){
                  EspecieDao::init();
                  
                  EspecieDao::$especie->nome=$_POST['nome'];
                  EspecieDao::$especie->porte=$_POST['porte'];
                  EspecieDao::$especie->localidade=$_POST['localidade'];
                  EspecieDao::$especie->descricao=$_POST['descricao'];

                  $directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
                  $uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . 'upload/';
                  $fieldname = 'img';
                  $uploadFilename = '';

                  if($_FILES[$fieldname]['name']!=""){
                      $temp = EspecieDao::db_especie_by_id($mySqlConnect->getLinkDB(), Config::$idpai);
                      @unlink($temp->img);

                      $now = time();
                      while(file_exists($uploadFilename = $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name']))
                      {
                              $now++;
                      }


                      @move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename);
                  }

                  EspecieDao::$especie->img= $uploadFilename;
                  EspecieDao::$especie->id=Config::$idpai;

                  EspecieDao::update($mySqlConnect->getLinkDB());
               }

                if(isset ($_POST['especierev'])){
                  EspecieDao::init();
                  EspecieDao::setTaxo($mySqlConnect->getLinkDB(),$_POST['vincula'],1);
               }

               if(isset ($_POST['vincular'])){
                  EspecieDao::init();

                  EspecieDao::setTaxo($mySqlConnect->getLinkDB(),$_POST['vincula'],Config::$idpai);
               }

            $mySqlConnect->closeDB();
    }

    }
    administracao::run();
?>
